1. Field of the Invention
The present invention relates to a method for downloading files such as software products from a server computer to a user computer over a communications network such as the Internet. More particularly, the invention relates to such a method that dynamically wraps or embeds information into the files while the files are being downloaded.
2. Description of the Prior Art
The explosive growth of the Internet combined with the ever-increasing number of software products such as computer programs and computer games available for sale has dramatically increased the number of files that are downloaded over the Internet. Electronic software distribution (ESD) and other web commerce systems on the Internet now allow users to access a web server that hosts a software store or reseller, request a software product, and then receive a downloaded copy of the software product from the server.
Before a software product can be downloaded, however, the server administrator must collect all of the files for the product, combine the files into a single file, and then encrypts or wraps the file for security purposes, resulting in an encrypted "bag-of-bits" (BOB). A consumer wishing to purchase the software product then downloads the BOB, pays for it, and decrypts it at the consumer's user computer.
Unfortunately, these prior art file-wrapping processes lack scaleability. Typical ESD system administrators operate many different software stores or resellers on the same server that can each be accessed by users to download software products. Prior art wrapping techniques require that each software product be separately wrapped for each store to include store-identifying information needed to track from which store the software product was ordered for accounting purposes. If an ESD system includes 10,000 separate stores, and each store sells 10,000 different software products, the ESD system must perform 10,000.times.10,000, or 100,000,000, wraps, and each of these wrapped files must be stored on the web server so they can be readily copied and downloaded when requested by a consumer. Furthermore, each time a vendor fixes a bug in a software product or otherwise changes the product, each store must rewrap the software products.
Those skilled in the art will appreciate that such a large number of wrapping processes cannot be performed in a timely or efficient manner. Moreover, the amount of server memory that would be required to store all of the wrapped software products for each store would be excessive. As the number of software products and ESD stores or resellers increases, these problems will worsen.